package com.cmz.common.api.providers;

import com.cmz.common.api.dto.StandardSubscriber;
import com.cmz.common.api.enums.StandardSubscriberParam;
import com.cmz.common.exception.NotImplementedException;

import java.util.List;

/**
 * 用户信息提供者
 * @author cmz
 */
public interface SubscriberProvider {

    /**
     * 获取用户ID
     * @return
     */
    String getSid();

    /**
     * 根据用户ID获取用户名称\用户机构
     * 缓存：
     * cacheNames = SystemConsts.CacheNames.ARK_SYS_USER
     * key = "'user-' + #sid"
     * @param sid 用户ID
     * @return 用户名称\用户机构
     */
    StandardSubscriber getSubscriber(String sid);

    /**
     * 搜索用户
     * @param query 搜索关键字
     * @return
     */
    default List<StandardSubscriber> search(String query) {
        throw new NotImplementedException();
    }

}
